// 无需登录的页面路径白名单
const whitelist = ['pages/my/my', 'pages/account/login', 'pages/account/password', 'pages/account/register'];
// 用户凭证信息存贮的key
const USER_KEY = "userObj";
export default {
  launch(app, options) {
    // 设置用户凭证方法
    app.globalData.setUser = (data = null) => {
      if (data) {
        uni.setStorageSync(USER_KEY, JSON.stringify(data));
        app.globalData.login = data.userId ? true : false;
      } else {
        uni.removeStorageSync(USER_KEY);
        app.globalData.login = false;
      }
    };
    // 获取用户凭证方法
    app.globalData.getUser = () => {
      let userInfo = uni.getStorageSync(USER_KEY) || "{}";
      userInfo = JSON.parse(userInfo);
      app.globalData.login = userInfo.userId ? true : false;
      return userInfo;
    };
    // 执行一次，获取最新数据
    app.globalData.getUser();

    app.globalData.handleLogin = (back) => {
      console.log("handleLogin");
      let route = uni.getStorageSync("BeforeLoginRoute");
      if (route) {
        uni.reLaunch({
          url: "/" + route
        })
        uni.removeStorageSync("BeforeLoginRoute")
      } else {
        typeof back == "function" && back()
      }

    };

    const {
      path
    } = options;
    // 未登录状态下，并且当前页面路径非白名单列表内，所以跳转到/pages/my/my

    if (!whitelist.includes(path) && !app.globalData.login) {
      // 记录当前路径
      uni.setStorageSync("BeforeLoginRoute", path)
      // 判断平台 跳转至不同的登录页
      // #ifdef  H5
      uni.navigateTo({
        url: '/pages/account/login'
      })
      // #endif

      // #ifdef MP-WEIXIN
      uni.switchTab({
        url: "/pages/my/my",
      });
      // #endif
    }

  },
  show(app, options) {
    console.log('show');
    const {
      path
    } = options;
    // 不是个人中心的情况下 需要判断是否登录
    if (!app.globalData.login) {
      uni.hideTabBar();
    } else {
      uni.showTabBar();
    }

  }
}